Compensation for repeatable run-out error

ABSTRACT

A method and apparatus for compensating for repeatable run-out errors in a disc drive is disclosed. The compensation is created by determining transfer function values for a servo loop in the drive as well as a sequence of repeatable run-out values for a portion of a disc. The repeatable run-out values are divided by respective transfer function values to produce compensation values that are inverse transformed to produce time-domain compensation values. These time-domain compensation values are injected into the servo loop to compensate for repeatable run-out errors.

REFERENCES TO RELATED APPLICATION

This application claims priority benefits from a U.S. provisional application having serial number 60/063,036, entitled COMPENSATION FOR WRITTEN-IN ERROR IN A DISC DRIVE USING AN EMBEDDED SERVO, and filed on Oct. 24, 1997. This application is related to a U.S. Utility Application filed on Jan. 12, 2000, entitled COMPENSATION FOR REPEATABLE RUN-OUT ERROR and having attorney docket number S01.12-0617. The inventions of both applications are owned by a common assignee.

FIELD OF THE INVENTION

The present invention relates to servo systems 10 in disc drives. In particular, the present invention relates to compensation for errors in servo systems.

BACKGROUND OF THE INVENTION

Disc drives read and write information along concentric tracks formed on discs. To locate a particular track on a disc, disc drives typically use embedded servo fields on the disc. These embedded fields are utilized by a servo subsystem to position a head over a particular track. The servo fields are written onto the disc when the disc drive is manufactured and are thereafter simply read by the disc drive to determine position.

Ideally, a head following the center of a track moves along a perfectly circular path around the disc. However, two types of errors prevent heads from following this ideal path. The first type of error is a written-in error that arises during the creation of the servo fields. Written-in errors occur because the write head used to produce the servo fields does not always follow a perfectly circular path due to unpredictable pressure effects on the write head from the aerodynamics of its flight over the disc, and from vibrations in the gimbal used to support the head. Because of these written-in errors, a head that perfectly tracks the path followed by the servo write head will not follow a circular path.

The second type of error that prevents circular paths is known as a track following error. Track following errors arise as a head attempts to follow the path defined by the servo fields. The track following errors can be caused by the same aerodynamic and vibrational effects that create written-in errors. In addition, track following errors can arise because the servo system is unable to respond fast enough to high frequency changes in the path defined by the servo fields.

Written-in errors are often referred to as repeatable run-out errors because they cause the same errors each time the head passes along a track. As track densities increase, these repeatable run-out errors begin to limit the track pitch. Specifically, variations between the ideal track path and the actual track path created by the servo fields can result in an inner track path that interferes with an outer track path. This is especially acute when a first written-in error causes a head to be outside of an inner track's ideal circular path and a second written-in error causes the head to be inside of an outer track's ideal circular path. To avoid limitations on the track pitch, a system is needed to compensate for repeatable run-out errors.

The present invention addresses these and other problems, and offers other advantages over the prior art.

SUMMARY OF THE INVENTION

A method and apparatus for compensating for repeatable run-out errors in a disc drive is disclosed.

The compensation is created by determining transfer function values for a servo loop in the drive as well as a sequence of repeatable run-out values for a portion of a disc. The repeatable run-out values are divided by respective transfer function values to produce compensation values that are inverse transformed to produce time-domain compensation values. These time-domain compensation values are injected into the servo loop to compensate for repeatable run-out errors.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a plan view of a disc drive of the present invention.

FIG. 2 is a top view of a section of a disc showing an ideal track and a realized written-in track.

FIG. 3 is a block diagram of a prior art servo loop.

FIG. 4 is a block diagram of a servo loop of the present invention.

FIG. 5 is a flow diagram showing a non-iterative embodiment of the present invention.

FIG. 6 is a flow diagram showing an iterative embodiment of the present invention.

FIG. 7 is a graph of frequency-domain compensation values obtained under the present invention.

FIG. 8 is a graph of repeatable run-out errors for an uncompensated servo system and a compensated servo system of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1 is a plan view of a disc drive 100 that includes a housing with a base plate 102 and a top cover 30 104 (sections of top cover 104 are removed for clarity). Disc drive 100 further includes a disc pack 106, which is mounted on a spindle motor (not shown). Disc pack 106 can include a plurality of individual discs which are mounted for co-rotation about a central axis. Each disc surface has an associated head gimbal assembly (HGA) 112 which is mounted to disc drive 100 for communication with the disc surface. Each HGA 112 includes a gimbal and a slider, which carries one or more read and write heads. Each HGA 112 is supported by a suspension 118 which is in turn attached to a track accessing arm 120 known generally as a fixture, of an actuator assembly 122.

Actuator assembly 122 is rotated about a shaft 126 by a voice coil motor 124, which is controlled by servo control circuitry within internal circuit 128. HGA 112 travels in an arcuate path 130 between a disc inner diameter 132 and a disc outer diameter 134. When the head is properly positioned, write circuity within internal circuitry 128 encodes data for storage on the disc and sends an encoded signal to the head in HGA 112 which writes the information to the disc. At other times, the read head in HGA 112 reads stored information from the disc and provides a recovered signal to detector circuitry and decoder circuitry within internal circuitry 128 to produce a recovered data signal.

FIG. 2 is a top view of a section 198 of a disc showing an ideal, perfectly circular track 200 and an actual track 202. Section 198 includes a plurality of radially extending servo fields such as servo fields 204 and 206. The servo fields include servo information that identifies the location of actual track 202 along disc section 198.

Any variation in the position of a head away from circular track 200 is considered a position error. The portions of track 202 that do not follow circular track 200 create written-in repeatable run-out position errors. A position error is considered a repeatable run-out error if the same error occurs each time the head passes a particular circumferential location on the disc. Track 202 creates a repeatable run-out error because each time a head follows the servo fields that define track 202, it produces the same position error relative to ideal track 200.

Under the present invention, a head attempting to write to or read from track 202 will not follow track 202 but instead will more closely follow perfectly circular track 200. This is accomplished using a compensation signal that prevents the servo system from tracking repeatable run-out errors resulting from the irregular shape of track 202.

FIG. 3 is a block diagram of a servo loop 208 of the prior art. The servo loop includes a servo controller 210, having a gain of "K" and a disc drive 212 having a gain of "P". Servo controller 210 is the servo control circuitry within internal circuit 128 of FIG. 1. Disc drive 212 includes actuator assembly 122, voice coil motor 124, track accessing arm 120, suspension 118, and head gimbal assembly 112, all of FIG. 1.

Servo controller 210 generates a control current 214 that drives the voice coil motor of disc drive 212. In response, disc drive 212 produces head motion 216. In FIG. 3, the written-in error, d_(w), is represented as a separate input signal 218 even though the written-in error would otherwise appear implicitly in head motion 216. The separation of written-in error 218 from head motion 216 provides a better understanding of the present invention. In addition, noise in the servo system has been separated and appears as noise 220, which is added to the head motion. The sum of head motion 216, written-in error 218 and noise 220 results in the head's servo measurement signal 222. Servo measurement signal 222 is subtracted from a reference signal 224, which is generated by internal circuitry 128 based on a desired location for the head. Subtracting head measurement 222 from reference signal 224 produces position error signal 226 which is input to servo controller 210.

The servo loop of FIG. 3 has a closed loop response that is calculated as: ##EQU1## where "Y" is head motion 216, "P" is the gain of disc drive 212, "K" is the gain of servo controller 210, "r" is reference signal 224, "n" is noise signal 220, and "d_(w) ", is the written-in error.

From Equation 1, it is clear that heads in servo loops of the prior art move in response to written-in errors. This movement is undesirable since it places the head outside of the ideally circular track path. Further, because the transfer function, PK/(1+PK), is frequency dependent, the transfer function suffers from peaking at certain frequencies. This peaking causes even greater position errors because it amplifies the written-in error at certain frequencies.

An alternative description of the response of the closed loop system of FIG. 3 is: ##EQU2## where PES is PES signal 226 of FIG. 3. Using Equation 2, an estimation of d_(w) can be produced by ignoring reference signal 224 and noise signal 220 and only using the portions of position error signal 226 that are caused by repeatable run-out error. This results in: ##EQU3## where R is the repeatable run-out portion of position error signal 226.

To eliminate the unwanted head motion created by the written-in error, the present invention adds a compensation signal to the servo loop of the prior art. This added signal is shown in servo loop 232 of the present invention, which is shown in FIG. 4. In FIG. 4, the elements that are common to FIG. 3 are numbered the same. The compensation signal added to the servo loop is compensation signal 228, which is produced by compensation circuitry 229. In FIG. 4, compensation signal 228 is inserted after the summation of written-in error 218 and head motion 216. However, those skilled in the art will recognize that the compensation signal can be added at other locations within the servo loop.

With the addition of compensation signal 228, the closed loop response of servo loop 232 is expressed as: ##EQU4## where d_(c) is compensation signal 228. From Equation 4, it is apparent that the effects of written-in error, d_(w), will be eliminated by compensation signal, d_(c), if the compensation signal is equal to the negative of the written-in error.

Using equations 3 and 4 above, an estimation of the compensation signal, d_(c), needed to eliminate the effects of written-in error, d_(w), appears as: ##EQU5## where R is the repeatable run-out component of the position error measurement.

In terms of frequencies, Equation 5 can be described as: ##EQU6##

The compensation signal injected into the servo loop of the present invention is a time-domain signal. Preferably, this time-domain signal is determined using the frequency domain relationship shown in Equation 6 to produce a frequency-domain compensation signal and transforming the resulting frequency-domain compensation signal into a time-domain compensation signal. The method of the present invention for determining the time-domain compensation signal is shown in FIG. 5.

The method begins at state 250 and proceeds to state 252 where the transfer function of the servo system is measured at selected frequencies. The transfer function measured in state 252 is 1/(1+PK) (jω). This transfer function can be measured using known techniques, which are described in "Discrete Time Control" by Franklin, Paul & Workman. Essentially, these techniques inject a disturbance into the servo system and measure a resulting signal within the servo system. The ratio of the injected signal to the measured signal provides the transfer function.

The transfer function measured in state 252 is only measured at selected frequencies. The selected frequencies are integral harmonics of the spindle frequency. The reason that the transfer function is only measured at the integral harmonics of the spindle frequency is that the repeatable run-out component of the position error measurement only has frequency components that are integral harmonics of the spindle frequency. This occurs because the repeatable run-out error is only measured at the servo fields, and the servo fields are equally spaced around the disc.

Thus, the lowest frequency that appears in the repeatable run-out signal is equal to the spindle frequency itself, and the highest frequency is equal to the spindle frequency times one-half the number of servo fields along a track.

As those skilled in the art will recognize, the transfer function only needs to be measured for those frequencies that are integral harmonics of the spindle frequency between the spindle frequency and one-half the number of servo fields on the disc times the spindle frequency. This upper frequency is known as the Nyquist frequency.

Once the transfer function has been measured at the selected frequencies, the method continues at state 254 where a time-domain sequence of repeatable run-out values is determined for a track. The repeatable run-out values can be calculated by repeatedly following the track over a number of revolutions, V, and averaging the position error signal obtained at each servo field over all of the revolutions. This is described by the following equation: ##EQU7## where R(k) is a sequence of time-domain repeatable run-out values, V is the number of revolutions, N is the number of servo fields along a track, and PES[k+(i-1)N] is the position error signal generated at the k^(th) servo field at each i^(th) revolution.

Thus, at each revolution, the position error signal for each servo field is recorded. The recorded position error signals for a particular servo field are then summed together and divided by the number of revolutions. This is repeated for each servo field resulting in a sequence of repeatable run-out values comprising one repeatable run-out error for each servo field. This sequence of repeatable run-out values is represented by R(k).

After state 254, the method continues at state 256, where the sequence of time-domain repeatable run-out values created in state 254 is transformed into a sequence of frequency-domain repeatable run-out values, R(jω). Preferably, the time-domain sequence of repeatable run-out values is transformed using a Fast Fourier Transform(FPT). This results in a sequence of frequency-domain repeatable run-out values that includes a value for each of the integral harmonics of the spindle frequency between the spindle frequency and one-half the number of servo fields times the spindle frequency.

In state 258, the respective frequency-domain repeatable run-out values are divided by the value of the servo loop's transfer function at the respective frequencies. This provides a sequence of frequency-domain compensation values. For example, the repeatable run-out value associated with the spindle frequency is divided by the value of the transfer function at the spindle frequency to produce a compensation value at the spindle frequency. Similarly, the repeatable run-out value at twice the spindle frequency is divided by the value of the transfer function at twice the spindle frequency to produce a compensation value at twice the spindle frequency, and so forth. This process is described by the equation: ##EQU8## where f_(s) is the spindle frequency, m is a harmonics integer, and N is the number of servo burst fields around a circumferential track.

Once the frequency-domain compensation values have been produced in state 258, the method continues in state 260 where an inverse transform of the frequency-domain compensation values is taken to produce a sequence of time-domain compensation values, having one compensation value for each of the servo fields. Preferably, this inverse transform is an inverse Fast Fourier Transform.

In state 262, the time-domain sequence of compensation values is injected into the servo loop as a compensation signal, and the method ends at state 264.

Except for the step of measuring the transfer function of the servo system, the method described in FIG. 5 is preferably repeated for each track on the disc. The transfer function of the servo system may be measured as little as once for the method or may be measured at an inner track, a middle track and an outer track. If more than one transfer function is measured, the transfer function associated with a track that is closest to the track currently being examined is used in the computations of the compensation values for the track. In addition, a separate transfer function may be measured for each head.

The quality of the compensation value produced through the method of FIG. 5 is dependent upon the number of revolutions used to determine the repeatable run-out values in state 254. As the number of revolutions increases, the accuracy of the repeatable run-out values improves. However, each revolution increases the time required to build the disc drive and thus should be minimized if possible. Preferably, the number of revolutions should be kept at five or fewer revolutions per track.

To accommodate a lower number of revolutions, one embodiment of the present invention utilizes an iterative process. Such an iterative process is shown in FIG. 6. The method of FIG. 6 starts at state 280 and continues at state 282 where the transfer function is measured at discrete harmonic frequencies between the spindle frequency and one-half the number of servo fields times the spindle frequency.

A time-domain sequence of repeatable run-out values is then determined in state 284 using Equation 7 above. Preferably the number of revolutions used to determine the repeatable run-out values is equal to five.

In state 286, the repeatable run-out values are compared against a limit for repeatable run-out values and if the repeatable run-out values are below the limit, the process ends at state 288.

If the time-domain repeatable run-out values are above the desired limits for the disc drive, they are transformed into a sequence of frequency-domain repeatable run-out values in state 290. Preferably, the transform is performed using a Fast Fourier Transform that results in repeatable run-out values for a set of discrete frequencies consisting of integer harmonics of the spindle frequency between the spindle frequency and one-half the number of servo fields times the spindle frequency.

In state 292, each of the frequency-domain repeatable run-out values is divided by the values of the transfer function at the frequencies of the respective run-out values using equation 8 above. These divisions produce a sequence of frequency-domain current-iteration compensation values. Thus, the repeatable run-out value associated with the spindle frequency is divided by the value of the transfer function at the spindle frequency to produce a current-iteration compensation value at the spindle frequency. Similarly, the repeatable run-out value at four times the spindle frequency is divided by the value of the transfer function at four times the spindle frequency to produce a current-iteration compensation value at four times the spindle frequency.

In state 294, the inverse transform of the frequency-domain current-iteration compensation values is taken to produce a sequence of time-domain current-iteration compensation values. Preferably, this inverse transform is an inverse Fast Fourier Transform that results in one compensation for each servo field.

In state 296, each current-iteration compensation value is multiplied by an adaption gain parameter to produce a sequence of incremental values. The incremental values represent changes to be made to the compensation values currently being used by the servo loop. These current compensation values are added to the incremental values to produce a sequence of replacement compensation values to be used by the servo loop in the next iteration. On the first pass through the iteration of FIG. 6 the current compensation value at each servo field is equal to zero.

The adaption gain parameter discussed in state 296 has a value between zero and one. This means that only a fraction of the derived compensation value is used to adjust the compensation value used by the servo loop. This causes the servo loop's compensation value to increase in a controlled manner until it reaches the value that provides repeatable run-out values within the limits set within state 286.

In state 298, the new compensation values created in state 296 are injected into the servo loop as a compensation signal and control is returned to state 284. Steps 284, 286, 290, 292, 294, 296 and 298 repeat such that the compensation values grow until they reach values that cause the repeatable run-out values to be within the limits set by state 286.

FIG. 7 is a graph of compensation values as a function of frequency produced using the present invention. The magnitude of the compensation values is shown in microinches on vertical axis 320 and the frequency of the compensation values is shown in Hertz on horizontal axis 322. At each harmonic of the spindle frequency there is a compensation value represented by an open circle.

FIG. 8 provides graphs of repeatable run-out error with and without the compensation signal of the present invention. In FIG. 8, the magnitude of the repeatable run-out error is shown in microinches on vertical axis 340 and time is shown on horizontal axis 342. Graph 344 of FIG. 8 shows the repeatable run-out error in a servo system that does not use the compensation signal of the present invention. Graph 346 shows the repeatable run-out error for a servo system that uses a compensation signal of the present invention.

In summary, a method of compensating repeatable run-out errors in a disc drive includes a state 252 of determining a transfer function for a servo loop in the disc drive and states 254, 256 of determining a sequence of repeatable run-out values for a portion of the disc drive. It also includes a state 258 of dividing each repeatable run-out value by a respective transfer function value to produce a sequence of compensation values. In a state 260, an inverse transform is applied to the sequence of compensation values to produce a sequence of time-domain compensation values and in a state 262, the sequence of time-domain compensation values is injected into the servo loop.

In further embodiments of the present invention, compensated repeatable run-out values are determined in states 284, 290 after injecting a refined sequence of compensation values in a state 298. If a compensated repeatable run-out value exceeds an acceptable repeatable run-out limit in a state 286, the refined compensation values are replaced in states 292, 294, 296, and 298. In state 292, compensated repeatable run-out values are divided by respective transfer function values to produce current-iteration compensation values. An inverse transform is applied to the current-iteration compensation values to produce time-domain current-iteration compensation values in a state 294. These time-domain current-iteration compensation values are arithmetically combined with refined compensation values in state 296 to form replacement compensation values that replace the refined compensation values in a state 298.

In a disc drive of the present invention a servo loop includes a servo controller 210, an actuator 122, a head 112 and a sensor located in the head. The servo loop of the present invention also includes a compensation circuit 229 for injecting a compensation signal 228, where the compensation signal is formed from initial compensation values created by determining a sequence of repeatable run-out values in a state 254, transforming the sequence of repeatable run-out values into a sequence of frequency-domain repeatable run-out values in a state 256 and dividing each frequency domain repeatable run-out value by a respective transfer function value of the servo loop in a state 258. This produces a sequence of frequency-domain compensation values that are inverse transformed in a state 260 to produce the initial time-domain compensation values that are used to create the compensation signal 228.

It is to be understood that even though numerous characteristics and advantages of various embodiments of the present invention have been set forth in the foregoing description, together with details of the structure and function of various embodiments of the invention, this disclosure is illustrative only, and changes may be made in detail, especially in matters of structure and arrangement of parts within the principles of the present invention to the full extent indicated by the broad general meaning of the terms in which the appended claims are expressed. For example, the particular elements may vary depending on the particular application for the servo system while maintaining substantially the same functionality without departing from the scope and spirit of the present invention. In addition, although the preferred embodiment described herein is directed to a servo loop for a disc drive system, it will be appreciated by those skilled in the art that the teachings of the present invention can be applied to other systems, without departing from the scope and spirit of the present invention. 

What is claimed is:
 1. A method of compensating for repeatable run-out errors in a disc drive, the method comprising steps of:(a) determining transfer function values for a servo loop in the disc drive; (b) determining a sequence of repeatable run-out values for a portion of the disc; (c) dividing each repeatable run-out value by a respective transfer function value to produce a sequence of compensation values; (d) applying an inverse transform to the sequence of compensation values to produce a sequence of time-domain compensation values; and (e) injecting the sequence of time-domain compensation values into the servo loop.
 2. The method of claim 1 wherein the transfer values are produced from a frequency-domain transfer function by determining the value of the frequency-domain transfer function at selected frequencies.
 3. The method of claim 1 wherein the sequence of repeatable run-out values is a sequence of discrete frequency-domain repeatable run-out values produced by applying a transform to a sequence of discrete time-domain repeatable run-out values.
 4. The method of claim 3 wherein each frequency-domain repeatable run-out value is associated with a different frequency and each respective frequency matches a frequency associated with the transfer function value that is divided into each respective repeatable run-out value to produce a respective compensation value.
 5. The method of claim 4 wherein each respective frequency is a harmonic frequency of a spindle motor rotational frequency within the disc drive.
 6. The method of claim 5 wherein the respective frequencies represent a subset of the harmonic frequencies of the spindle motor rotational frequency between the spindle motor rotational frequency and one-half a number of servo fields around a disc times the spindle motor rotational frequency.
 7. The method of claim 6 wherein the respective frequencies do not include the spindle motor rotational frequency.
 8. The method of claim 1 further comprising steps of:(f) multiplying the time-domain compensation values by an adaption gain parameter to produce refined compensation values; and (g) injecting the refined compensation values instead of the time-domain compensation values into the servo loop at step (e).
 9. The method of claim 8 further comprising:(h) determining a sequence of compensated repeatable run-out values after injecting the refined compensation values; (i) if a compensated repeatable run-out value exceeds an acceptable repeatable run-out limit, replacing the refined compensation values injected in the servo loop through steps of:(1) dividing the compensated repeatable run-out values by the respective transfer function values to produce a sequence of current-iteration compensation values; (2) applying an inverse transform to the current-iteration compensation values to produce a sequence of time-domain current-iteration compensation values; (3) arithmetically combining the sequence of time-domain current-iteration compensation values with the refined compensation values to produce replacement compensation values; and (4) replacing the refined compensation values with the replacement compensation values.
 10. The method of claim 9 wherein the arithmetically combining step (i) (3) comprises steps of multiplying the time-domain current-iteration compensation values by the adaption gain parameter to produce incremental values, and respectively adding the incremental values to the refined compensation values.
 11. The method of claim 10 wherein the repeatable run-out values are produced by applying a transform to a sequence of discrete time-domain repeatable run-out values and the compensated repeatable run-out values are produced by applying a transform to a sequence of discrete time-domain compensated repeatable run-out values, each compensated repeatable run-out value being associated with a different frequency and each respective frequency of each compensated repeatable run-out value matching the frequency associated with the transfer function value that is divided into the respective compensated repeatable run-out value to produce a respective current-iteration compensation value.
 12. The method of claim 9 further comprising repeating steps (h) and (i) iteratively until none of the compensated repeatable run-out values exceed the acceptable repeatable run-out limit.
 13. A disc drive having a servo loop for positioning a head over a disc, the servo loop comprising:a servo controller which generates a servo control signal in response to a received position error signal; an actuator, coupled to the servo controller, which is capable of moving the head in response to the servo control signal; a sensor, located in the head, which is capable of sensing servo information located on the disc and producing a servo signal therefrom, the servo signal being combined with a reference signal to produce the position error signal; and a compensation circuit for injecting an initial compensation signal comprised of initial time-domain compensation values into the servo loop, the compensation circuit comprising a storage device which stores the initial time-domain compensation values, the initial time-domain compensation values being formed by:determining a sequence of repeatable run-out values; transforming the sequence of repeatable run-out values into a sequence of frequency-domain repeatable run-out values; dividing each of the frequency-domain repeatable run-out values by respective values of a transfer function of the servo loop at respective frequencies of the frequency-domain repeatable run-out values to produce a sequence of frequency-domain compensation values; and inverse transforming the sequence of frequency-domain compensation values into the initial time-domain compensation values.
 14. The disc drive of claim 13 wherein a distinct compensation signal is injected at each track.
 15. The disc drive of claim 13 wherein the sequence of frequency-domain repeatable run-out values are associated with frequencies that are harmonics of the spindle motor rotational frequency.
 16. The disc drive of claim 13 wherein the compensation circuit further comprises means for replacing the initial time-domain compensation values with refined compensation values that the means forms through a process comprising steps of:(a) multiplying each of the initial time-domain compensation values by an adaption gain parameter to produce a sequence of incremental values; (b) using the sequence of incremental values to generate a first compensation signal that is injected into the servo loop; (c) determining a sequence of compensated repeatable run-out values while the first compensation signal is injected into the servo loop; (d) transforming the sequence of compensated repeatable run-out values into a sequence of frequency-domain compensated repeatable run-out values; (e) dividing each of the frequency-domain compensated repeatable run-out values by respective values of a transfer function of the servo loop for respective frequencies of the frequency-domain compensated repeatable run-out values to produce a refined sequence of frequency-domain compensation values; and (f) inverse transforming the refined sequence of frequency--domain compensation values into the sequence of refined time-domain compensation values, the refined time-domain compensation values replacing the initial time-domain compensation values stored in the compensation circuit. 